package com.castle.fortress.admin.cms.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.castle.fortress.admin.cms.dto.CmsModelDto;
import com.castle.fortress.admin.cms.entity.CmsModelEntity;
import com.castle.fortress.common.entity.RespBody;

import java.util.List;

/**
 * cms模型配置表 服务类
 *
 * @author castle
 * @since 2022-03-02
 */
public interface CmsModelService extends IService<CmsModelEntity> {

    /**
     * 分页展示cms模型配置表列表
     * @param page
     * @param cmsModelDto
     * @return
     */
    IPage<CmsModelDto> pageCmsModel(Page<CmsModelDto> page, CmsModelDto cmsModelDto);

    /**
    * 分页展示cms模型配置表扩展列表
    * @param page
    * @param cmsModelDto
    * @return
    */
    IPage<CmsModelDto> pageCmsModelExtends(Page<CmsModelDto> page, CmsModelDto cmsModelDto);
    /**
    * cms模型配置表扩展详情
    * @param id cms模型配置表id
    * @return
    */
    CmsModelDto getByIdExtends(Long id);

    /**
     * 展示cms模型配置表列表
     * @param cmsModelDto
     * @return
     */
    List<CmsModelDto> listCmsModel(CmsModelDto cmsModelDto);

    /**
     * 删除表结构
     * @param tbName
     * @return
     */
    boolean dropTable(String tbName);

    /**
     * 检查字段是否重复
     * @param dto
     * @return
     */
    RespBody checkColumnRepeat(CmsModelDto dto);

    /**
     * cms模型配置表扩展详情
     * @param id 文章id
     * @return
     */
    CmsModelDto getByArticleId(Long id);

    /**
     * cms模型配置表扩展详情
     * @param code 模型编码
     * @return
     */
    CmsModelDto getByCode(String code);

}
